<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="box" class="one two three"></div>


    <ul class="list">
        <li>01</li>
        <li>02</li>
        <li>03</li>
        <li>04</li>
        <li>05</li>
        <li>06</li>
        <li>07</li>
        <li>08</li>
        <li>09</li>
        <li>10</li>
    </ul>


</body>
<script>
    // 伪数组
    // 有数组的结构和特性(1. 有length属性  2.可以通过下标取值,下标赋值要看官方给定特性(有的可以 有的不行) 3. 可以循环遍历 for  for...of),但是不能使用数组的拓展方法(push pop unshift)

    // 常见的伪数组(集合)
    // classList

    // document.getElementsByClassName()
    // document.getElementsByTagName()
    // document.getElementsByName()
    // document.querySelectorAll()

    // arguments   (可以下标赋值)


    // var box = document.getElementById("box");

    // console.log(box.classList);

    // box.classList[1] = "second"
    // console.log(box.classList[1]);
    // console.log(box.classList.indexOf("two"));


    // 伪数组转化真数组?  (根据伪数组得到一个元素相同的新数组)
    var liList = document.querySelectorAll(".list li"); // [li,li,li...li]
    console.log(liList);  // querySelectorAll 获取的元素集合可以使用forEach(自己有)

    // 浅复制

    // 1. 新建数组 遍历伪数组 将伪数组中每个元素放到新数组中
    // var arr = [];
    // for (var i = 0; i < liList.length; i++) {
    //     var li = liList[i]; // 每一个li  (对象 -> 引用类型)
    //     arr.push(li);
    // }
    // console.log(arr);

    // arr[0].innerText = "hello";

    // 2. 借助构造函数Array的方法               (String.fromCharCode)
    // Array.isArray()  判断一个数据是否是数组
    // Array.from()     传入一个伪数组转化为真数组

    var arr = Array.from(liList);
    console.log(arr, Array.isArray(arr));



    var result = arr.filter(function (item, index) { // 把满足条件的内容放到新数组中
        // console.log(item);
        return item.textContent.indexOf(3) != -1;
    })

    console.log(result);









</script>

</html>